[レポート][GitGuardian]ハードコードされたシークレットに対応することはなぜ急務なのか? – CODE BLUE 2022 #codeblue_jp
CODE BLUE 2022 で行われた下記セッションのレポートです。
セッション概要
タイトル
[GitGuardian]ハードコードされたシークレットに対応することはなぜ急務なのか?
概要
シークレット(APIトークン、暗号化キーなど)は、最新のソフトウェア・アプリケーションを開発する上で必要不可欠な要素ですが、サイバー犯罪者は、内部システムへの不正アクセスを目的として、それらのシークレットを常に探しています。
このセッショでは公開コードや内部コードにおいてシークレットが多く発見される事実を示し、シークレットが漏えいしたことに起因するいくつかの有名な不正アクセス事案について検証します。
最後に、この問題を解決するためにどのように取り組むべきか、そしてGitGuardianがどのようなものかを見ていきます。
Presented by
ラムジ・ラホド (GitGuardian Senior Account Executive)
レポート
- シークレットには多種多様なものがある
- API キー
- SSH キー
- ID/PW、など
- シークレットはサイバー犯罪者にとって有益なもの
- ハードコードすべきではないことはよく知られているが、実際には頻繁に起きている
- ヒューマンエラーのせい
- 誤ったリポジトリにプッシュ
- コミット履歴に残っている
- ソースコードの一つのシークレットが含まれていると、複製され拡散されることになる
- できるだけ早く対処するが大事
- GitGuardian 社は GitHub を監視している
- 2021 年で 600 万のシークレットを確認した
- 2020 年の 2 倍となる
- インシデント対応が難しい例を紹介する
- Uber の例
- 従業員へのソーシャルエンジニアリングから始まった
- 特権管理者システムを奪取され、内部ツールを利用された
- 一つのクレデンシャルがより多くのクレデンシャルの侵害につながった例
- Microsoft の例
- 内部ソースコードがリークされた
- 損害は限定的であり、公開されても被害は少ないとの主張だった
- 376 個のシークレットが見つかった
- 規模から想定される半分以下の量であり、シークレットを慎重に管理していたと考えられる
- Twich の例
- 全体のソースコードが公開された
- 関連企業データも含まれていた
- 6,000 のリポジトリと 6,000 のシークレットが発見れた
- CodeCov の例
- CodeCov コードカバレッジツールであり、侵害により 2 万ユーザーに影響があった
- Docker イメージ1つのシークレットから始まった
- Uber の例
- 予防策(ベストプラクティス)
- シークレット管理システムを利用する
- ルール通り運用するには、ワークショップなどで開発者に意識付けする必要がある
- API キーのスコープを必要最小限とする
- 自動化されたシークレット検出を行う
- シークレット管理システムを利用する
- 自動化された検出を GitGuardian は提供している
- 検出では
- 全てのソースコードと履歴を確認する必要がある
- 精度が高いことが重要
- 修復する際には影響のあるユーザー確認も課題となる
- シークレットの数は多いので、自動化しなければ対応できない
- サーバでの検出は簡単にできる
- 影響を小さくするには、クライアント側のプロセスの早い段階で見つけることが大事
- GitGuardian のソリューション
- Internal secrets Detection
- 内部ソースコードと内部システムのクリーンアップに重点を置いている
- AppSec チーム、DevSecOps チームを対象としている
- クライアント側の防止策を実行できる
- Public Moonitoring
- 脅威インテリジェンスツール
- レッドチームにとって魅力的なツール
- GitHub の Public リポジトリをスキャン
- 開発者が利用している個人用のリポジトリも監視することも有効(誤ったプッシュがあるため)
- 会社に関連する情報を見つけることもできる
- Internal secrets Detection
さいごに
ハードコードすべきではないことはよく知られているが、実際には頻繁に起きている、という点が印象的でした。自身も気をつけようと思えるセッションでした。